package ace.module.captcha.api;

import ace.cmp.core.model.R;
import ace.module.captcha.api.model.dto.CaptchaImageDto;
import ace.module.captcha.api.model.input.CaptchaCreateInput;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;

/**
 * @author caspar
 * @date 2023/3/17 15:49 图形验证码
 */
public interface CaptchaImageApi {
  /**
   * 获取图形验证码,base64Data格式
   *
   * @param captchaCreateInput
   * @return
   */
  R<CaptchaImageDto> createBase64Data(@Valid @NotNull CaptchaCreateInput captchaCreateInput);

  /**
   * 验证图形验证码,返回的data永远为null,code=0为成功，其它都是不成功
   *
   * @return
   */
  R<Void> verify(@Valid @NotNull Long captchaItemId, @Valid @NotEmpty String code);
}
